Session Description Protocol (SDP) is intended to describe multimedia sessions for a variety of purposes. The SIP protocol utilizes SDP in an offer/answer model to negotiate a media session between SIP endpoints. The offer/answer model requires a first endpoint to generate an offer describing desired resources and codecs, and a second endpoint to generate an answer that corresponds to the offer. The first endpoint generates the contents of an offer based on configuration and user input. For example, an end user may press a video call button, resulting in the first endpoint generating an offer containing audio and video capabilities. The codecs offered may be configured by the end user or an administrator.
If an endpoint is an application server, the application server may involve a media server to handle media processing. A SIP media server might receive an offer to set up a new SIP session from the first endpoint. The media server may generate an answer based on a local configuration. In another scenario, a new SIP session may require an offer from the media server, in which case an offer must be solicited from the media server. New Session Initiation Protocol (SIP) sessions may be created using a method known as a slow start SIP request. The slow start SIP request can be problematic, suffering from drawbacks including retransmissions due to delayed SIP Acknowledgements (ACKs) and timeouts. The slow start SIP request relies on the local configuration to generate the offer. Representing every possible media type and scenario through the local configuration is also unrealistic and inefficient.
An alternative method for creating new sessions with an SDP offer from the media server is a SIP Out-of-Dialog REFER (OOD-R) request when applications want to affect what media types are offered and negotiated. However, media types may not be added to an existing offer by manipulating the SDP in the network since a creator of an offer may be unaware of additional media types and/or payloads and parameters. An inability to add media types can limit flexibility within existing sessions. A lack of flexibility is also limiting when multiple applications use the same media server instance. No single configuration will satisfy all application requirements. Building intelligence into the media server per application by embedding service logic violates rules of separation of application logic, signaling, and a media plane.